package com.zp.demo.repush.service.defined;

import com.zp.demo.repush.enums.RePushType;
import com.zp.demo.repush.vo.BaseRePushVo;
import com.zp.demo.repush.vo.RePushStrategyEntity;

/**
 * 推送之后的方法回调
 */
public interface DefindRePushDbService {
    /**
     * 重新调用方法的回调 方法
     * @param pushVo
     * @param result 调用是否返回了正常结果
     * @param remainingCounts 剩余推送次数
     * @return
     */
    BaseRePushVo callbackRepush(BaseRePushVo pushVo,boolean result,Integer remainingCounts,RePushType pushType,String mess);

    /**
     * 保存 推送信息到数据库
     * @param pushVo
     * @param strategyEntity
     * @return
     */
    BaseRePushVo saveRepush2DB(BaseRePushVo pushVo, RePushStrategyEntity strategyEntity);

    /**
     * 添加到定时任务
     * @param counts
     */
    void save2DbScheduledJob(BaseRePushVo pushVo,Integer counts);


}
